#define _CRT_SECURE_NO_WARNINGS 1

class Solution {
public:
    using LL = long long;
    void getNum(const vector<int>& nums, LL& sum, LL& zero)
    {
        for (const auto& e : nums)
        {
            sum += e;
            if (e == 0)
                zero++;
        }
    }
    long long minSum(vector<int>& nums1, vector<int>& nums2) {
        LL sum1 = 0, sum2 = 0;
        LL zero1 = 0, zero2 = 0;
        getNum(nums1, sum1, zero1);
        getNum(nums2, sum2, zero2);
        if ((zero1 == 0 && sum1 < zero2 + sum2) || (zero2 == 0 && sum2 < zero1 + sum1))
            return -1;
        else
            return max(zero1 + sum1, zero2 + sum2);
    }
};